const express = require('express');

const app = express();
app.listen(3007,() => console.log('启动了'));

//优先解决跨域问题
const cors = require('cors');
app.use(cors());


//-------------------------------------身份认证----------------------------------
const jwt = require('express-jwt');
// app.use(jwt().unless());
//jwt() 用于解析token  并将token 中保存的数据 赋值给req.user
// unless() 完成身份认证
app.use(jwt({
    secret:'dhgv',  // 生成token时的钥匙 必须统一  在注册那
    algorithms: ['HS256'] //必填  加密算法 无需了解
}).unless({
    path:['/api/login','/api/reguser']
}));


//----------------------------------------配置  接收信息-------------------------------------
/*
接收用户客户端提交的请求体， 并且赋值给req.body (req.body = {客户端提交的数据})
只能处理content-type：application/x-www-form-urlencoded类型的请求体
*/
app.use(express.urlencoded({extended: true}));


//加载自定义的路由模块
let loginRouter = require('./routers/login');
app.use('/api',loginRouter);

let userRouter = require('./routers/user');
app.use('/my/user',userRouter);


//错误处理
app.use((err,req,res,next) => {
    if (err.name === 'UnauthorizedError') {
        res.status(401).send({status:1,message:'身份认证失败！'});
    }
});